package com.example.bjsfpost.sap;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
public class SapBomRequestDTO implements Serializable {
    private static final long serialVersionUID = 134553035878625716L;
    /**
     * 物料号
      */
    @JsonProperty("MATERIAL")
    private String material;
    /**
     * 工厂
     */
    @JsonProperty("PLANT")
    private String plant;
    /**
     * BOM 用途
     */
    @JsonProperty("BOM_USAGE")
    private String bomUsage;
    /**
     * 有效日期自 (BTCI)
     */
    @JsonProperty("VALID_FROM")
    private String validFrom;
    /**
     * ZPP_MAT_BOM_ITEM
     */
    @JsonProperty("COMP")
    private List<ZppMatBomItem> comp;
    @Data
    public static class ZppMatBomItem implements Serializable{
        private static final long serialVersionUID = -5840790519505847883L;
        /**
         * 项目类别（物料单）
         */
        @JsonProperty("ITEM_CATEG")
        private String itemCateg;
        /**
         * BOM 项目号
         */
        @JsonProperty("ITEM_NO")
        private String itemNo;
        /**
         * BOM 组件
         */
        @JsonProperty("COMPONENT")
        private String component;
        /**
         * 组件数量 (BTCI)
         */
        @JsonProperty("COMP_QTY")
        private String compQty;
        /**
         * 替代项目：组
         */
        @JsonProperty("AI_GROUP")
        private String aiGroup;
        /**
         * 替代项目：策略
         */
        @JsonProperty("AI_STRATEG")
        private String aiStrateg;
        /**
         * 备选项目：分类订单
         */
        @JsonProperty("AI_PRIO")
        private String aiPrio;
        /**
         * 使用可能性按 % (BTCI)
         */
        @JsonProperty("USAGE_PROB")
        private String usageProb;
    }
    /**
     * ZPP_MAT_BOM_HEAD
     */
    @JsonProperty("HEAD")
    private List<ZppMatBomHead> head;
    @Data
    public static class ZppMatBomHead implements Serializable{
        private static final long serialVersionUID = -5840790519505847882L;
        /**
         * 物料号
         */
        @JsonProperty("MATERIAL")
        private String material;
        /**
         * 工厂
         */
        @JsonProperty("PLANT")
        private String plant;
        /**
         * BOM 用途
         */
        @JsonProperty("BOM_USAGE")
        private String bomUsage;
        /**
         * 有效日期自 (BTCI)
         */
        @JsonProperty("VALID_FROM")
        private String validFrom;
    }
}
